perm filename NEW.XGP[HAL,HE] blob sn#153467 filedate 1975-04-10 generic text, type T, neo UTF8
/LMAR=0/XLINE=25/FONT#0=BASL30[HAL, HE]/FONT#3=BASI30[HAL, HE]/FONT#4=BASB30/FONT#5=BDR40
␈↓ ↓H␈↓␈↓ αλSTANFORD ARTIFICIAL INTELLIGENCE LABORATORY ␈↓ 
#APRIL 1975





␈↓"∧␈↓ ↓H␈↓␈↓ α(␈↓¬An Overview of AL, A Programming System for Automation



␈↓"∧␈↓ ↓H␈↓¬␈↓ αA␈↓Raphael Finkel, Russell Taylor, Robert Bolles, Richard Paul␈↓#
*␈↓#, Jerome Feldman␈↓#
*␈↓#




␈↓")␈↓ ↓H␈↓␈↓ βλAL␈α is␈α∨an␈α high-level␈α programming␈α∨system␈α for␈α specification␈α∨of
␈↓ ↓H␈↓␈↓ αHmanipulatory␈αtasks␈αsuch␈αas␈αassembly␈αof␈αan␈αobject␈αfrom␈αparts.␈α AL␈αincludes␈αan
␈↓ ↓H␈↓␈↓ αHALGOL-like␈α∃source␈α∃language,␈α∃a␈α∃translator␈α∃for␈α∃converting␈α∃programs␈α∃into
␈↓ ↓H␈↓␈↓ αHrunnable␈α∞code,␈α∞and␈α∞a␈α∞runtime␈α
system␈α∞for␈α∞controlling␈α∞manipulators␈α∞and␈α
other
␈↓ ↓H␈↓␈↓ αHdevices.␈α∩ The␈α∪system␈α∩includes␈α∩advanced␈α∪features␈α∩for␈α∪describing␈α∩individual
␈↓ ↓H␈↓␈↓ αHmotions␈α⊂of␈α⊂manipulators,␈α⊂for␈α⊂using␈α⊂sensory␈α⊂information,␈α⊂and␈α⊃for␈α⊂describing
␈↓ ↓H␈↓␈↓ αHassembly␈α⊃algorithms␈α⊃in␈α⊃terms␈α⊃of␈α⊃common␈α⊃domain-specific␈α⊃primitives.␈α⊂ This
␈↓ ↓H␈↓␈↓ αHpaper␈α
describes␈αthe␈α
design␈αof␈α
AL,␈α
which␈αis␈α
currently␈αbeing␈α
implemented␈α
as␈αa
␈↓ ↓H␈↓␈↓ αHsuccessor to the Stanford WAVE system.




















␈↓")␈↓ ↓H␈↓␈↓ αλ______________________________________________________________________________________␈↓ >  
␈↓")␈↓ ↓H␈↓␈↓ αλ␈↓β␈↓#
*␈↓#␈α⊗Jerome␈α↔Feldman␈α⊗is␈α↔now␈α⊗at␈α⊗the␈α↔University␈α⊗of␈α↔Rochester.␈α⊗ Lou␈α⊗Paul␈α↔is␈α⊗now␈α↔at␈α⊗the
␈↓ ↓H␈↓βStanford Research Institute.
␈↓")␈↓ ↓H␈↓β␈↓ αλThis␈α∪research␈α∪was␈α∪supported␈α∩in␈α∪part␈α∪by␈α∪the␈α∩National␈α∪Science␈α∪Foundation␈α∪under␈α∩contract
␈↓ ↓H␈↓βNo.␈α⊂GI-42906␈α⊂and␈α⊃in␈α⊂part␈α⊂by␈α⊂the␈α⊃Advanced␈α⊂Research␈α⊂Projects␈α⊂Agency␈α⊃of␈α⊂the␈α⊂Office␈α⊃of␈α⊂Defense
␈↓ ↓H␈↓βunder␈α⊗Contract␈α∃No.␈α⊗DAHC-15-73-C-0435.␈α⊗ The␈α∃views␈α⊗and␈α⊗conclusions␈α∃in␈α⊗this␈α⊗document␈α∃are
␈↓ ↓H␈↓βthose␈α⊗of␈α⊗the␈α⊗authors␈α⊗and␈α⊗should␈α⊗not␈α⊗be␈α⊗interpreted␈α⊗as␈α⊗necessarily␈α⊗representing␈α↔the␈α⊗official
␈↓ ↓H␈↓βpolicies, either expressed or implied, of the funding agencies.
␈↓ ↓H␈↓.0␈↓ εH␈↓ 
pPage 1

␈↓"∧␈↓ ↓H␈↓␈↓∧.0 PHILOSOPHY OF DESIGN ␈↓


␈↓")␈↓ ↓H␈↓␈↓βDATA AND CONTROL STRUCTURES␈↓
␈↓")␈↓ ↓H␈↓␈↓ αλThe␈α∞principal␈α∞mode␈α∂of␈α∞input␈α∞to␈α∞AL␈α∂is␈α∞textual,␈α∞as␈α∞opposed␈α∂to␈α∞spoken␈α∞or␈α∂manual␈α∞(joystick).
␈↓ ↓H␈↓There␈α∞are␈α
levels␈α∞of␈α∞complexity␈α
which␈α∞are␈α∞much␈α
more␈α∞readily␈α∞transmitted␈α
from␈α∞man␈α∞to␈α
machine
␈↓ ↓H␈↓through␈α∞an␈α∞interface␈α∞of␈α∞symbolic␈α∞text.␈α∞ Simultaneous␈α∞motions␈α∞of␈α∞two␈α∞arms␈α∞and␈α∞termination␈α
and
␈↓ ↓H␈↓error␈αconditions␈α
are␈αmore␈α
likely␈αto␈α
be␈αunambiguously␈αdescribed␈α
through␈αthe␈α
medium␈αof␈α
text;␈αthe
␈↓ ↓H␈↓structure␈α
imposed␈α
on␈αthe␈α
textual␈α
language␈αforces␈α
a␈α
consistent␈αframework␈α
on␈α
initially␈αless␈α
structured
␈↓ ↓H␈↓intuitive␈α⊃ideas.␈α⊃ Non-textual␈α⊃forms␈α⊃of␈α⊃input␈α⊂for␈α⊃defining␈α⊃target␈α⊃locations␈α⊃and␈α⊃suggesting␈α⊂arm
␈↓ ↓H␈↓trajectories␈α
to␈α
avoid␈α
collisions␈αare␈α
most␈α
useful␈α
when␈α
applied␈αin␈α
conjunction␈α
with␈α
a␈α
program␈αtext
␈↓ ↓H␈↓which␈α⊃supplies␈α⊃the␈α⊂skeletal␈α⊃intent␈α⊃of␈α⊃the␈α⊂programmer.␈α⊃ The␈α⊃supervisor␈α⊂level␈α⊃of␈α⊃AL␈α⊃is␈α⊂simple
␈↓ ↓H␈↓enough␈α⊃to␈α⊃allow␈α⊃natural␈α⊃teaching␈α⊂by␈α⊃showing;␈α⊃it␈α⊃should␈α⊃be␈α⊂easy␈α⊃to␈α⊃interface␈α⊃such␈α⊃devices␈α⊂as
␈↓ ↓H␈↓joysticks and vocal input into AL, although we do not intend to do so at present.
␈↓")␈↓ ↓H␈↓␈↓ αλExperience␈α
with␈α
languages␈α
like␈α
SAIL␈α
and␈α
WAVE␈α
has␈α
shown␈α
that␈α
text␈α
macros␈α
are␈α
a␈αuseful
␈↓ ↓H␈↓feature;␈αthey␈α
reduce␈αthe␈α
amount␈αof␈α
repetitive␈αtyping.␈α
 AL␈αhas␈α
a␈αgeneral-purpose␈α
text␈αmacro␈α
system
␈↓ ↓H␈↓interfaced into the scanner and parser.
␈↓")␈↓ ↓H␈↓␈↓ αλThe␈α
datatypes␈α
available␈α
include␈α
those␈α∞types␈α
necessary␈α
to␈α
refer␈α
to␈α∞one-dimensional␈α
measures
␈↓ ↓H␈↓(like␈α∀distance,␈α∀time,␈α∃mass)␈α∀and␈α∀three-dimensional␈α∃measures␈α∀(like␈α∀directed␈α∃distance,␈α∀locations,
␈↓ ↓H␈↓orientations).␈α∞Arithmetic␈α
operators␈α∞are␈α
available␈α∞not␈α∞only␈α
for␈α∞the␈α
standard␈α∞scalar␈α∞operations␈α
like
␈↓ ↓H␈↓multiplication and addition, but also for such operations as rotation and translation.
␈↓")␈↓ ↓H␈↓␈↓ αλProvision␈α
is␈α
made␈α
for␈α
simultaneous␈α
execution␈α
of␈α
several␈α
processes␈α
This␈α
allows␈αcalculation␈α
and
␈↓ ↓H␈↓arm␈α⊗motion␈α⊗to␈α∃take␈α⊗place␈α⊗simultaneously;␈α∃several␈α⊗manipulators␈α⊗can␈α∃be␈α⊗in␈α⊗independent␈α∃or
␈↓ ↓H␈↓coordinated motion.
␈↓ ↓H␈↓Page 2␈↓ ∧⎇PHILOSOPHY OF DESIGN ␈↓ ≡.0.2

␈↓"∧␈↓ ↓H␈↓␈↓βMOTION SPECIFICATIONS␈↓
␈↓")␈↓ ↓H␈↓␈↓ αλExperience␈αwith␈αWAVE␈αhas␈αshown␈αthat␈αcalculating␈αtrajectories␈αfor␈αmanipulators␈αis␈αdesirable
␈↓ ↓H␈↓but␈αtime-consuming.␈α
Trajectory␈αcalculations,␈αtogether␈α
with␈αall␈αother␈α
calculations␈αwhich␈α
need␈αonly
␈↓ ↓H␈↓be␈α∂performed␈α∂once,␈α∂are␈α∂done␈α∂at␈α⊂compile␈α∂time.␈α∂ This␈α∂allocation␈α∂of␈α∂effort␈α∂drastically␈α⊂reduces␈α∂the
␈↓ ↓H␈↓computing␈αload␈αat␈αexecution␈αtime␈αand␈αeliminates␈αwasteful␈αrecomputation␈αevery␈αtime␈αa␈αsequence␈αof
␈↓ ↓H␈↓actions␈α⊗is␈α⊗executed.␈α⊗ This␈α∃leads␈α⊗to␈α⊗a␈α⊗clear␈α∃distinction␈α⊗between␈α⊗compile-time␈α⊗and␈α∃runtime.
␈↓ ↓H␈↓Trajectories␈αmay␈αbe␈αspecified␈αto␈αpass␈αthrough␈α
given␈αintermediate␈αpoints.␈α The␈αprimary␈αuse␈αof␈α
this
␈↓ ↓H␈↓is to avoid collisions during the motion.  It is also useful in specifying complicated motions.
␈↓")␈↓ ↓H␈↓␈↓ αλA␈α⊃wide␈α∩range␈α⊃of␈α∩exceptional␈α⊃conditions␈α∩can␈α⊃occur␈α∩during␈α⊃the␈α∩motion␈α⊃of␈α∩a␈α⊃manipulator.
␈↓ ↓H␈↓Appropriate␈α
action␈α
must␈αbe␈α
taken␈α
as␈αsoon␈α
as␈α
any␈αof␈α
these␈α
occurs,␈αfor␈α
example␈α
to␈αstart␈α
up␈α
a␈αnew
␈↓ ↓H␈↓concurrent␈α∪process␈α∩or␈α∪to␈α∩notify␈α∪the␈α∩user.␈α∪ Therefore,␈α∩AL␈α∪allows␈α∩the␈α∪flexible␈α∪specification␈α∩of
␈↓ ↓H␈↓conditions␈α∞to␈α∞monitor␈α∞during␈α∞the␈α∞course␈α∞of␈α∞motions␈α∞(and␈α∞during␈α∞execution␈α∞of␈α∞blocks␈α∞of␈α∞code␈α∞in
␈↓ ↓H␈↓general), and what to do in the case that a tested condition occurs.
␈↓ ↓H␈↓whole_task: BEGIN
␈↓ ↓H␈↓␈↓ αλ␈↓β{First␈α∀declare␈α∀the␈α∃necessary␈α∀FRAMEs␈α∀and␈α∀describe␈α∃how␈α∀they␈α∀are␈α∀initially␈α∃related.␈α∀ The
␈↓ ↓H␈↓β␈↓ αλattach␈α⊂structure␈α⊃representing␈α⊂the␈α⊂initial␈α⊃world␈α⊂is␈α⊃shown␈α⊂in␈α⊂Figure␈α⊃1.␈α⊂ The␈α⊃arrows␈α⊂indicate
␈↓ ↓H␈↓β␈↓ αλhow␈α∩the␈α∩movement␈α∩of␈α∩a␈α∩frame␈α∩affects␈α∩other␈α⊃frames.␈α∩ If␈α∩a␈α∩frame␈α∩at␈α∩the␈α∩tail␈α∩of␈α∩an␈α⊃arrow
␈↓ ↓H␈↓β␈↓ αλis␈α∩moved␈α⊃(by␈α∩the␈α∩arm,␈α⊃visually␈α∩updated,␈α∩etc.)␈α⊃the␈α∩frame␈α∩at␈α⊃the␈α∩head␈α∩of␈α⊃the␈α∩arrow␈α∩will␈α⊃be
␈↓ ↓H␈↓β␈↓ αλautomatically␈α∃updated.␈α∃ The␈α∃double␈α∃arrows␈α∃are␈α∃the␈α∃results␈α∃of␈α∃RIGIDLY␈α⊗AFFIXing␈α∃one
␈↓ ↓H␈↓β␈↓ αλframe to another.}